<template>
  <div class="person">
    <h2>{{ name }}</h2>
    <h2>{{ age }}</h2>
    <button @click="changeName">修改名字</button>
    <button @click="changeAge">修改年龄</button>
    <button @click="showTel">展示联系方式</button>
  </div>
</template>

<script lang="ts">
export default {
    name:'Person',
    setup(){
        //setup函数中this是undefined，无this了，哭哭
        //setup执行在所有钩子前
        //data
        //这种写法下数据都不是响应式的（没双向绑定
        let name="沐七"
        let age=18
        let tel="13877777777"

        //methods
        function changeAge(){
            age++
        }

        function changeName(){
            name="沐玖"
        }
        function showTel(){
            alert(tel)
        }
        return {name,age,changeName,changeAge,showTel}//简写形式，实际为name:name,age:age，前面为模板里的名字，后面为setup里定义的数据名
        //return ()=>'haha'   //返回字符串页面会直接渲染，原组件里的标签都没了
    }
}
</script>

<style scoped>
.person{
    background-color: #8eace8;
    box-shadow: 0 0 10px;
    border-radius: 10px;
}
</style>